WIFI AP 和STA同时开启


1. 概述

sta模式:wifi作为client,去连接AP/router的工作模式。

ap模式:wifi作为热点,供其他设备连接。


2. 修改板端行为


2.1. 开启sta模式

  1. 添加AP热点信息

    / # vi appconfigs/wpa_supplicant.conf
    ctrl_interface=/tmp/wifi/run/wpa_supplicant
    update_config=1
    
    network={
        ssid="aryl iPhone"
        psk="123456789a"
    }
    
  2. wifi 模块初始化

    cd /config/wifi export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:pwd

    执行初始化脚本:

    ssd20x的平台上执行 ssw01bInit.sh

    ssd21x的平台上执行 sigma_wifi_init.sh

  3. 测试wifi 连接

    ./wpa_supplicant -Dnl80211 -i wlan0 -c /appconfigs/wpa_supplicant.conf -d &
    sleep 2
    udhcpc  -i wlan0 -s /etc/init.d/udhcpc.script &
    

    查询连接状态:

    ./wpa_cli -i wlan0 -p /tmp/wifi/run/wpa_supplicant status
    
  4. ping 是否连接到网络中。

    ping -I wlan0 14.215.177.39
    
  5. DNS支持

    /etc/resolv.conf 添加 nameserver 8.8.8.8;

    测试时,/etc/resolv.conf 文件缺失或不可写入,可以在ssd21x上rootfs_dispcam.mk中默认添加dns server。ssd20x上, 修改rootfs.mk

    touch $(OUTPUTDIR)/rootfs/etc/resolv.conf
    echo "nameserver 202.96.128.86" >> $(OUTPUTDIR)/rootfs/etc/resolv.conf
    echo "nameserver 8.8.8.8" >> $(OUTPUTDIR)/rootfs/etc/resolv.conf;
    

    导入dns支持库路径,取决于libdns的路径

    export LD_LIBRARY_PATH=$LD_LIBRARY_ifPATH:/customer/libdns
    

    默认在customer/libdns路径下有对应的lib。

    如果文件夹缺失,请在相应的编译器下拷贝" libnss_dns* "," libnss_files* "," libresolv* " 。

    ping -I wlan0 
    /config/wifi # ping -I wlan0
    
    PING (163.177.151.109): 56 data bytes
    64 bytes from 163.177.151.109: seq=0 ttl=55 time=8.638 ms
    64 bytes from 163.177.151.109: seq=1 ttl=55 time=11.019 ms
    64 bytes from 163.177.151.109: seq=2 ttl=55 time=8.133 ms
    64 bytes from 163.177.151.109: seq=3 ttl=55 time=8.579 ms
    

如果以上步骤测试均正常,sta模式验证完毕。


2.2. 开启AP模式

ifconfig p2p0 up
ifconfig p2p0 192.168.1.100 netmask 255.255.255.0
./hostapd -B /config/wifi/hostapd.conf
./dnsmasq -i p2p0 --no-daemon -C /config/wifi/dnsmasq.conf &

查看连接设备信息:

./hostapd_cli -i p2p0 -p /var/run/hostapd all_sta &

通过pc 搜索ssid:ssw101bap passwd:12345678 (可以修改hostapd.conf 的ssid和password)

如果以上步骤测试均正常,ap模式验证完毕。